read.csv("wind_processed.csv")
Tmax = 2000
t = 20
n_frames = Tmax/t #must pick something divisible
#make each transition point appear double
#repeat every t^th twice so e.g. if t=20, get 1:20, 20:40 etc.
ind = sapply(1:n_frames, function(i){(t*(i-1)):(t*(i-1)+t)})
ind = ind[2:length(ind)] #remove extra 0
dfpad = df[ind,]
dfpad$frame = c(rep(1,t),rep(2:n_frames, each = t+1))
plotly::plot_ly(data = dfpad,
x = ~eastwest, #~ so looks for them in dataset
y = ~northsouth,
frame = ~frame,
type = "scatter",
text = ~paste("Time:", Time),
mode = "lines+markers",
marker = list(size = 8,
symbol = "circle",
sizemode = "diameter"),
line = list(shape = "linear", width = 2)
) %>%
plotly::layout(xaxis = list(title = "East-West Direction"),
yaxis = list(title = "North-South Direction"),
showlegend = F
) %>%
plotly::animation_opts(frame = 250,
transition = 10,
redraw = F)
NA
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQpyZWFkLmNzdigid2luZF9wcm9jZXNzZWQuY3N2IikNCg0KVG1heCA9IDIwMDANCnQgPSAyMA0Kbl9mcmFtZXMgPSBUbWF4L3QgI211c3QgcGljayBzb21ldGhpbmcgZGl2aXNpYmxlDQoNCiNtYWtlIGVhY2ggdHJhbnNpdGlvbiBwb2ludCBhcHBlYXIgZG91YmxlIA0KDQojcmVwZWF0IGV2ZXJ5IHRedGggdHdpY2Ugc28gZS5nLiBpZiB0PTIwLCBnZXQgMToyMCwgMjA6NDAgZXRjLg0KaW5kID0gc2FwcGx5KDE6bl9mcmFtZXMsIGZ1bmN0aW9uKGkpeyh0KihpLTEpKToodCooaS0xKSt0KX0pDQppbmQgPSBpbmRbMjpsZW5ndGgoaW5kKV0gI3JlbW92ZSBleHRyYSAwDQpkZnBhZCA9IGRmW2luZCxdDQoNCmRmcGFkJGZyYW1lID0gIGMocmVwKDEsdCkscmVwKDI6bl9mcmFtZXMsIGVhY2ggPSB0KzEpKQ0KDQoNCnBsb3RseTo6cGxvdF9seShkYXRhID0gZGZwYWQsDQogICAgICAgICAgICAgICAgIHggPSB+ZWFzdHdlc3QsICN+IHNvIGxvb2tzIGZvciB0aGVtIGluIGRhdGFzZXQNCiAgICAgICAgICAgICAgICAgeSA9IH5ub3J0aHNvdXRoLA0KICAgICAgICAgICAgICAgICBmcmFtZSA9IH5mcmFtZSwNCiAgICAgICAgICAgICAgICAgdHlwZSA9ICJzY2F0dGVyIiwNCiAgICAgICAgICAgICAgICAgdGV4dCA9IH5wYXN0ZSgiVGltZToiLCBUaW1lKSwNCiAgICAgICAgICAgICAgICAgbW9kZSA9ICJsaW5lcyttYXJrZXJzIiwNCiAgICAgICAgICAgICAgICAgbWFya2VyID0gbGlzdChzaXplID0gOCwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2wgPSAiY2lyY2xlIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplbW9kZSA9ICJkaWFtZXRlciIpLA0KICAgICAgICAgICAgICAgICBsaW5lID0gbGlzdChzaGFwZSA9ICJsaW5lYXIiLCB3aWR0aCA9IDIpDQogICAgICAgICAgICAgICAgKSAlPiUNCnBsb3RseTo6bGF5b3V0KHhheGlzID0gbGlzdCh0aXRsZSA9ICJFYXN0LVdlc3QgRGlyZWN0aW9uIiksDQogICAgICAgICAgICAgICAgIHlheGlzID0gbGlzdCh0aXRsZSA9ICJOb3J0aC1Tb3V0aCBEaXJlY3Rpb24iKSwNCiAgICAgICAgICAgICAgICBzaG93bGVnZW5kID0gRg0KICAgICAgICApICU+JQ0KcGxvdGx5OjphbmltYXRpb25fb3B0cyhmcmFtZSA9IDMwMCwNCiAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbiA9IDEwLA0KICAgICAgICAgICAgICAgICAgICAgICByZWRyYXcgPSBGKSANCg0KI1RPRE86IHdvdWxkIGJlIGNvb2wgdG8gc29tZWhvdyByZXByZXNlbnQgdGhlIHVuY2VydGFpbnR5DQojIENhbiBnZXQgY3JlZGlibGUgaW50ZXJ2YWwgZnJvbSBwb3N0ZXJpb3Igb3V0cHV0LCB0b28uLi4NCg0KYGBgDQoNCg==